1. Field of the Invention
The present invention relates to computers systems, and deals more particularly with methods, systems, and computers program products for improving data in a virtual server environment of a computing network through use of internal enhancements.
2. Description of the Related Art
In today's rapidly evolving world, there is an ongoing shift from traditional wholly-owned data centers to an environment where businesses contract for such services to a Service Provider (“SP”). The SP market space is segmented into multiple market spaces, such as Storage Service Providers (SSP), Application Service Providers (ASP), etc. In recent years, the overall SP market has been undergoing annual growth rates in the double digits. A primary reason for this growth is the skyrocketing popularity of the Internet and World Wide Web, and the tendency of businesses to use service providers to support network traffic in this environment.
SP response to the growth in the size of their customer base has traditionally been to add a new server per customer. The value point of this approach was that it provided incremental growth on a per-customer basis, such that the capacity of the additional server would be proportional to the initial requirements of the new customer. Further, customer isolation was assured on a physical boundary. This approach has been termed a “horizontal growth” path due to the additional build-out of servers, storage devices, and network interfaces required to support an expanding customer base.
Over time, this approach has grown less and less desirable due to growth inhibitors which include:
(1) Complexity: As the number of customers associated with a given data center grew, the problem of adding required support services grew even more complex. Issues such as the under-utilization of network attachment media and inefficient allocation of storage resources became a major problem.
(2) Economics: Addition of new servers required the extension of the network access infrastructure—such as switches, routers, and long-line connections—for supporting those servers. The ability to share these resources was limited due to the isolation of each customer-specific platform.
(3) Profitability: SPs began to find their profit potential constrained due to the increased costs caused by the increased complexity and decreased efficiency cited above. However, increased complexity and decreased efficiency at the SP facility did not justify charging customers higher fees, and thus the customer's price point remained constant, leading to reduced profitability for the SPs.
To address these problems, the concept of the “virtual server” was created. In this context, a virtual server is a logical entity that resides upon a traditional server platform. One or more virtual servers can concurrently share the network, system, and storage resources owned by the “real” platform. This approach reduced complexity for the SP's environment by reducing the need for additional external resources to be added to the system every time a customer was added or an existing customer required more resources. (It should be noted that virtual servers may be used to support complex computing environments other than those found in SP facilities, and thus reference herein to problems encountered by SPs is for purposes of illustration and not of limitation.)
Until recently, this state of affairs served nicely, meeting SP requirements by allowing them to effectively meet their customer requirements. However, technology does not stand still, and virtual server support has now reached the point where hundreds—and in some cases thousands—of virtual servers can reside on a single “real” platform. In these high-end environments, the effect of the presence of multiple virtual server instances can no longer be hidden from the network infrastructure. FIG. 1 depicts such an environment, and demonstrates the impact of the multiple virtual servers to the network interface. As shown therein, the network adapter 150 must provide concurrent active service to all “n” virtual servers, where “n” may be potentially thousands of virtual servers (represented in FIG. 1 by virtual servers 110, 120, 130, 140), and this service must be available without regard to actual traffic patterns of individual virtual servers. Note also that the traffic of the collection of virtual servers cannot exceed the actual capacity of the network adapter. This leads to inefficiency in actual data transfer caused by the adapter spending excess time servicing relatively small amounts of data per virtual server. The traditional approach to this problem relies on resolving this inefficiency via the addition of more network adapters, such that each adapter handles traffic for a subset of the virtual servers. The result of this approach, however, is that the complexity and cost factors cited earlier are reborn in the virtual server environment.
Accordingly, what is needed is a solution for the virtual server environment that supports large numbers of virtual server instances while still providing efficient data transfer for these virtual servers, and which does not suffer from (or re-introduce) the problems which have been described.